package com.sg.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 无空间  有应用
 *
 * @author xxx
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("ba8809e5375c11ed87d500163e1b729d")
public class Users extends BaseEntity {
    private static final long serialVersionUID = 1L;


    /**
     * 个人账号
     */
    @TableId(value = "user_id", type = IdType.UUID)
    @NotNull(message = "userId不能为空")
    private String userId;
    /**
     * 用户名
     */
    @TableField(value = "user_name")
    @ApiModelProperty("用户名")
    private String userName;
    /**
     * 密码
     */
    @TableField(value = "password")
    @ApiModelProperty("密码")
    private String password;
    /**
     * 密码是否为空 TRUE:是 FALSE:否
     */
    @TableField(value = "is_password_exit")
    @NotNull(message = "密码是否为空不能为空")
    @ApiModelProperty("密码是否为空")
    private String isPasswordExit;
    /**
     * 绑定邮箱
     */
    @TableField(value = "email")
    @ApiModelProperty("绑定邮箱")
    private String email;
    /**
     * 邮箱激活状态 TRUE:是 FALSE:否
     */
    @TableField(value = "pass_by_email")
    @ApiModelProperty("邮箱激活状态")
    private String passByEmail;
    /**
     * 绑定手机
     */
    @TableField(value = "phone")
    @NotNull(message = "绑定手机不能为空")
    @ApiModelProperty("绑定手机")
    private String phone;
    /**
     * 手机激活状态 TRUE:是 FALSE:否
     */
    @TableField(value = "pass_by_phone")
    @NotNull(message = "手机激活状态不能为空")
    @ApiModelProperty("手机激活状态")
    private String passByPhone;
    /**
     * 个人资料是否完善 TRUE:是 FALSE:否
     */
    @TableField(value = "is_user_info_done")
    @NotNull(message = "个人资料是否完善不能为空")
    @ApiModelProperty("个人资料是否完善")
    private String isUserInfoDone;
    /**
     * 注册时间
     */
    @TableField(value = "reg_time")
    @NotNull(message = "注册时间不能为空")
    @ApiModelProperty("注册时间")
    private Date regTime;
    /**
     * 最后登录ip
     */
    @TableField(value = "last_login_ip")
    @ApiModelProperty("最后登录ip")
    private String lastLoginIp;
    /**
     * 最后登录时间
     */
    @TableField(value = "last_login_time")
    @ApiModelProperty("最后登录时间")
    private Date lastLoginTime;
    /**
     * 上次修改密码时间
     */
    @TableField(value = "last_password_changed_time")
    @ApiModelProperty("上次修改密码时间")
    private Date lastPasswordChangedTime;
    /**
     * 上次被锁定的时间
     */
    @TableField(value = "last_lockout_time")
    @ApiModelProperty("上次被锁定的时间")
    private Date lastLockoutTime;
    /**
     * 使用无效密码登录次数
     */
    @TableField(value = "failed_password_attempt_count")
    @ApiModelProperty("使用无效密码登录次数")
    private Long failedPasswordAttemptCount;
    /**
     * 首次使用无效密码时间
     */
    @TableField(value = "first_failed_password_attemp_time")
    @ApiModelProperty("首次使用无效密码时间")
    private Date firstFailedPasswordAttempTime;
    /**
     * 操作时间
     */
    @TableField(value = "operate_time")
    @NotNull(message = "操作时间不能为空")
    @ApiModelProperty("操作时间")
    private Date operateTime;

    /**
     * 密码错误锁定状态 TRUE:是 FALSE:否
     */
    @TableField(value = "password_error_lock_state")
    @ApiModelProperty("密码错误锁定状态")
    private String passwordErrorLockState;

    /**
     * 设备
     */
    @TableField(value = "dev_name")
    @ApiModelProperty("设备")
    private String devName;
    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @NotNull(message = "创建时间不能为空")
    @ApiModelProperty("创建时间")
    private Date createTime;
    /**
     * 来源渠道 PC:PC端 APP:APP MINI_APPLET:小程序
     */
    @TableField(value = "source_code")
    @ApiModelProperty("来源渠道")
    private String sourceCode;
    /**
     * 是否失效 TRUE:是 FALSE:否
     */
    @TableField(value = "is_invalid")
    @NotNull(message = "是否失效不能为空")
    @ApiModelProperty("是否失效")
    private String isInvalid;
    /**
     * 失效类型 FREEZE:冻结 OTHER:其他
     */
    @TableField(value = "invalid_type")
    @ApiModelProperty("失效类型")
    private String invalidType;
    /**
     * 失效原因
     */
    @TableField(value = "invalid_reason")
    @ApiModelProperty("失效原因")
    private String invalidReason;
    /**
     * 失效时间
     */
    @TableField(value = "invalid_time")
    @ApiModelProperty("失效时间")
    private Date invalidTime;
    /**
     * 邀请人账号
     */
    @TableField(value = "invite_user_id")
    @ApiModelProperty("邀请人账号")
    private String inviteUserId;
    /**
     * 是否作废 TRUE:是 FALSE:否
     */
    @TableField(value = "is_valid")
    @NotNull(message = "是否作废不能为空")
    @ApiModelProperty("是否作废")
    private String isValid;
    /**
     * 归属于场景ID
     */
    @TableField(value = "sence_id")
    @NotNull(message = "归属于场景ID不能为空")
    @ApiModelProperty("归属于场景ID")
    private String senceId;
    /**
     * 创建于空间ID
     */
    @TableField(value = "space_id")
    @NotNull(message = "创建于空间ID不能为空")
    @ApiModelProperty("创建于空间ID")
    private String spaceId;
    /**
     * 创建于联盟应用ID
     */
    @TableField(value = "app_id")
    @NotNull(message = "创建于联盟应用ID不能为空")
    @ApiModelProperty("创建于联盟应用ID")
    private String appId;
}
